#include<iostream>
using namespace std;
class Iterator
{
public:
	virtual void * next() = 0;
};
template<class T>
class MyVector
{
public:
	MyVector(T t)
	{
	}

	class MyIterator:Iterator
	{
	public:
		void * next()
		{
		}
	};
};

template<class T>
class MyList
{
public:
	MyList(T t)
	{
	}

	class MyIterator
	{
	};
};
int main()
{
	MyVector<int> v(1);
	MyVector<int>::MyIterator i;

	return 0;
}
void find(MyList<int>::MyIterator first,end())
{
}
void find(Iterator* first, Iterator *end)
{
}